/*
 * @(#) SessionUtil.java 2011-6-2
 *
 * Copyright (c) 2011, Strong Technology. All Rights Reserved.
 * Strong Technology. CONFIDENTIAL
 */
package cn.strong.gweva.common.util;

import java.util.Map;
import java.util.Set;

import cn.strong.gweva.common.business.entity.LoginEntity;

import com.opensymphony.xwork2.ActionContext;

/**
 * 会话处理
 * 
 * @author lilanfei
 * @version 1.0
 * @since 2011-6-2
 */
public class SessionUtil
{
	
	/**
	 * 移除Session对象
	 * 
	 * @param key Session Key
	 * @param obj Session对象
	 */
	public static void removeSession(String key)
	{
		ActionContext.getContext().getSession().remove(key);
	}
	
	/**
	 * 保存Session对象
	 * 
	 * @param key Session Key
	 * @param obj Session对象
	 */
	public static void setSession(String key, Object obj)
	{
		ActionContext.getContext().getSession().put(key, obj);
	}

	/**
	 * 获取Session对象
	 * 
	 * @param key Session Key
	 */
	public static Object getSession(String key)
	{
		return ActionContext.getContext().getSession().get(key);
	}

	/**
	 * 清空登录会话
	 */
	public static void clearLoginSession()
	{
		/*
		 */
		ActionContext.getContext().getSession().clear();
		ActionContext.getContext().getSession().remove(Constants.SESSION_LOGIN_USER_INF);
	}
	
	/**
	 * 清除LoginEntity以外的Session信息
	 */
	public static void clearSessionNotLogin()
	{
		Map<String, ?> session = ActionContext.getContext().getSession();
		Set<String> keys = (Set<String>)session.keySet();
		for (String key : keys)
		{
			if (!Constants.SESSION_LOGIN_USER_INF.equals(key))
			{
				session.remove(key);
			}
		}
	}
	
	/**
	 * 清除所有Session信息
	 */
	public static void clearAllSession()
	{
		ActionContext.getContext().getSession().clear();
	}
	
	/**
	 * 取得登陆用户信息
	 * @return
	 */
	public static LoginEntity getLoginEntity()
	{
		return (LoginEntity)ActionContext.getContext().getSession().get(Constants.SESSION_LOGIN_USER_INF);
	}
	
}
